
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __gnu_xml_util_XMLWriter__
#define __gnu_xml_util_XMLWriter__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace lang
      {
          class CPStringBuilder;
      }
    }
    namespace xml
    {
      namespace util
      {
          class XMLWriter;
      }
    }
  }
  namespace org
  {
    namespace xml
    {
      namespace sax
      {
          class Attributes;
          class ErrorHandler;
          class Locator;
      }
    }
  }
}

class gnu::xml::util::XMLWriter : public ::java::lang::Object
{

  static jboolean isLineEnd(::java::lang::String *);
public:
  XMLWriter();
  XMLWriter(::java::io::OutputStream *);
  XMLWriter(::java::io::Writer *);
  XMLWriter(::java::io::Writer *, ::java::lang::String *);
private:
  void setEncoding(::java::lang::String *);
public:
  virtual void setWriter(::java::io::Writer *, ::java::lang::String *);
  virtual void setEOL(::java::lang::String *);
  virtual void setErrorHandler(::org::xml::sax::ErrorHandler *);
public: // actually protected
  virtual void fatal(::java::lang::String *, ::java::lang::Exception *);
public:
  virtual void setXhtml(jboolean);
  virtual jboolean isXhtml();
  virtual void setExpandingEntities(jboolean);
  virtual jboolean isExpandingEntities();
  virtual void setPrettyPrinting(jboolean);
  virtual jboolean isPrettyPrinting();
  virtual void setCanonical(jboolean);
  virtual jboolean isCanonical();
  virtual void flush();
  virtual void write(::java::lang::String *);
  virtual void writeElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *, ::java::lang::String *);
  virtual void writeElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *, jint);
  virtual void setDocumentLocator(::org::xml::sax::Locator *);
  virtual void startDocument();
  virtual void endDocument();
private:
  static jboolean isEmptyElementTag(::java::lang::String *);
  static jboolean indentBefore(::java::lang::String *);
  static jboolean spaceBefore(::java::lang::String *);
  static jboolean spacePreserve(::java::lang::String *);
public:
  virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *);
  virtual void endPrefixMapping(::java::lang::String *);
private:
  void writeStartTag(::java::lang::String *, ::org::xml::sax::Attributes *, jboolean);
public:
  virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *);
  virtual void writeEmptyElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *);
  virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
  virtual void characters(JArray< jchar > *, jint, jint);
  virtual void ignorableWhitespace(JArray< jchar > *, jint, jint);
  virtual void processingInstruction(::java::lang::String *, ::java::lang::String *);
  virtual void skippedEntity(::java::lang::String *);
  virtual void startCDATA();
  virtual void endCDATA();
  virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
  virtual void endDTD();
  virtual void startEntity(::java::lang::String *);
  virtual void endEntity(::java::lang::String *);
  virtual void comment(JArray< jchar > *, jint, jint);
  virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
  virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
  virtual void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
  virtual void elementDecl(::java::lang::String *, ::java::lang::String *);
  virtual void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
  virtual void internalEntityDecl(::java::lang::String *, ::java::lang::String *);
private:
  void writeQuotedValue(::java::lang::String *, jint);
  void escapeChars(JArray< jchar > *, jint, jint, jint);
  void newline();
  void doIndent();
  void rawWrite(jchar);
  void rawWrite(::java::lang::String *);
  void rawWrite(JArray< jchar > *, jint, jint);
  static const jint CTX_ENTITY = 1;
  static const jint CTX_ATTRIBUTE = 2;
  static const jint CTX_CONTENT = 3;
  static const jint CTX_UNPARSED = 4;
  static const jint CTX_NAME = 5;
  static ::java::lang::String * sysEOL;
  ::java::io::Writer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) out;
  jboolean inCDATA;
  jint elementNestLevel;
  ::java::lang::String * eol;
  jshort dangerMask;
  ::gnu::java::lang::CPStringBuilder * stringBuf;
  ::org::xml::sax::Locator * locator;
  ::org::xml::sax::ErrorHandler * errHandler;
  jboolean expandingEntities;
  jint entityNestLevel;
  jboolean xhtml;
  jboolean startedDoctype;
  ::java::lang::String * encoding;
  jboolean canonical;
  jboolean inDoctype;
  jboolean inEpilogue;
  jboolean prettyPrinting;
  jint column;
  jboolean noWrap;
  ::java::util::Stack * space;
  static const jint lineLength = 75;
  static ::java::lang::String * xhtmlFullDTD;
  static JArray< ::java::lang::String * > * HTMLlat1x;
  static JArray< ::java::lang::String * > * HTMLsymbolx_GR;
  static JArray< ::java::lang::String * > * HTMLsymbolx_gr;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_util_XMLWriter__
